#ifndef _STDAFX_H_
#define _STDAFX_H_

/////////////////////////////////////////////////////////////////////////////
// Windows and STL
/////////////////////////////////////////////////////////////////////////////
#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers
#include <Windows.h>
#include <vector>
#include <string>
#include <map>
#include <queue>
#include <list>
#include <deque>
#include <assert.h>
#include <algorithm>
#include <iostream>
#include <fstream>
#include <sstream>
#include <ctime>
#include <cstdio>
#include <cstdlib>
#include <conio.h>

using namespace std;
using std::map;
/////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////
// DirectX 9
/////////////////////////////////////////////////////////////////////////////
#define DIRECTINPUT_VERSION 0x0800
#include <d3d9.h>
#include <d3dx9.h>
#include <dinput.h>
#pragma comment(lib, "dinput8.lib")
#pragma comment(lib, "dxguid.lib")
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")

//////////////////////////////////////////////////////////////////////////
// Engine Files
//////////////////////////////////////////////////////////////////////////
#include "PhTypes.h"
#include "PhConstants.h"
/////////////////////////////////////////////////////////////////////////////
// Macros
/////////////////////////////////////////////////////////////////////////////

///	Safely Release COM Objects.
#define SAFE_RELEASE(p)			if (p) { p->Release(); p = NULL; }

///	Safely delete pointers.
#define SAFE_DELETE(p)			if (p) { delete p; p = NULL; }

///	Safely delete array pointers.
#define SAFE_DELETE_ARRAY(p)	if (p) { delete [] p; p = NULL; }
/////////////////////////////////////////////////////////////////////////////

#endif